package com.ls.code01;

/**
 * @author LS
 * @version 1.0
 * @description:
 * @date 2021/5/4 上午11:26
 */
public class Demo {


    public static void swap(int[] arr, int i, int j) {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }

    public static void print(int[] arr) {

        //1～n
        //2~n
        //3~n
//        for (int i = 0; i < arr.length - 1; i++) {
//            int minValueIndex = i;
//            for (int j = i + 1; j < arr.length; j++) {
//                minValueIndex = arr[minValueIndex] < arr[j] ? minValueIndex : j;
//
//            }
//            swap(arr, minValueIndex, i);
//        }

        /*for (int i = arr.length - 1; i >= 0; i--) {
            for (int j = 0; j < i; j++) {
                if (arr[j] > arr[j + 1]) {
                    swap(arr, j + 1, j);
                }
            }
        }*/

        //0~0
        //0~1
        for (int i = 1; i < arr.length; i++) {
            int minValueIndex = i;
            while (minValueIndex - 1 >= 0 && arr[minValueIndex] < arr[minValueIndex - 1]) {
                swap(arr, minValueIndex, minValueIndex - 1);
                minValueIndex--;
            }
        }
    }

    public static int find(int[] arr, int num) {
        int min = 0;
        int max = arr.length;
        while (max > min) {
            int mid = (min + max) / 2;
            if (arr[mid] > num) {
                max = mid ;
            } else if (arr[mid] < num) {
                min = mid ;
            } else {
                return mid;
            }
        }
        return -1;

    }

    public static void main(String[] args) {
        int[] arr = {1, 2, 1, 4, 3, 2, 8, 5, 2};
        print(arr);

        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
        System.out.println();
        int i1 = find(arr, 3);
        System.out.println(i1);
    }

}
